Storage systems may utilize a plurality of storage devices (e.g., a storage array) to provide high performance scale-out storage. Distributed storage systems may include a plurality of nodes, each connected to a storage array, connected via a high-speed interconnect such as a switched fabric. Nodes may use remote direct memory access (RDMA) to directly access each other's memory.
A distributed storage system may include a number of independent functional modules (or “subsystems”), each capable of running on multiple nodes and communicating using shared memory space. A given subsystem may require a relatively large amount memory to function. Allocating subsystem memory can create a bottleneck during startup.